/**
 * 
 */
package com.yuri.news.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.yuri.news.entity.News;

/**
 * @author Yuri
 *
 */
public interface NewsService {
	/**
	 * 添加新闻
	 * @param news
	 * @return 返回实例化对象	
	 */
	News saveNews(News news);
	/**
	 * 更新新闻
	 * @param news
	 * @return 成功返回true 失败返回false（失败表示不存在）
	 */
	Boolean updapeNews(News news);
	/**
	 * 删除新闻
	 * @param news
	 */
	void deleteNews(News news);
	/**
	 * 查询所有新闻信息
	 * @param page	分页信息
	 * @return	符合要求的新闻
	 */
	Page<News> listNews(Pageable page);
	/**
	 * 根据id查询新闻信息
	 * @param id	新闻id
	 * @return	符合要求的新闻信息(无则返回null)
	 */
	News getNewsById(Long id);
	
	/**
	 * 根据关键字key进行查询
	 * @param key	关键字（不包含id查询）
	 * @param page	分页信息
	 * @return	符合要求的新闻数据(无则 返回null)
	 */
	Page<News> listNewsByKey(String key, Pageable page);
	/**
	 * 根据分类名查询新闻
	 * @param className	分类名
	 * @param page		分页信息
	 * @return	无则返回null
	 */
	Page<News> listNewsByClassName(String className, Pageable page);
	
	/**
	 * 根据分类ID查询新闻
	 * @param classId	分类Id
	 * @param page		分页信息
	 * @return	无则返回null
	 */
	Page<News> listNewsByClassId(Long classId, Pageable page);
	/**
	 * 查询热门新闻
	 * @param page	分页信息
	 * @return	符合要求的新闻信息
	 */
	Page<News> listHotNews(Pageable page);
}
